using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;


//public class MJ_TableLayoutConfig //: ScriptableObject
//{

//    // 4个风位的墙牌的位置配置
//    public List<List<Vector3>> WallCards; //保存4个风位的起点坐标, 从BOTTOM按逆时针保存
//                                          // public CardLayoutKeyInfo WallCardLayoutConfig;

//    // 4个风位的河牌的位置配置
//    public List<List<Vector3>> RiverCards;
//    // public CardLayoutKeyInfo RiverCardLayoutConfig;

//    //花牌的配置
//    public List<List<Vector3>> FlowerCards;

//    /// <summary>
//    ///  4个风位的 碰杠牌的位置配置  
//    /// </summary>
//    public MJ_ActionCardLayoutConfig ActionCards;

//    //4个风位的 手牌的位置配置
//    public MJ_HandCardLayoutConfig HandCards;


//}


// /// <summary>
// /// 碰杠牌的位置配置
// /// </summary>
// public class MJ_ActionCardLayoutConfig
// {
//     public List<Vector3> StartPositions_ShuPai; //竖着摆放的开始位置
//     public List<Vector3> StartPositions_HengPai; //横着摆放的开始位置

//     public Vector2 SizeOfCard; //牌的大小

//     public float GapBetweenCards; //相邻牌的间距, 2个牌中间缝隙
//     public float GapBetweenGroup; //碰杠牌组之间  缝隙大小

// }

// /// <summary>
// /// 手牌的位置配置
// /// </summary>
// public class MJ_HandCardLayoutConfig
// {
//     public List<Vector3> StartPositions; //保存4个风位的起点坐标, 从BOTTOM按逆时针保存

//     public float HorizontalDistance; //相邻牌的左右间距; 是模型中心点的距离

//     public float GapBetweenGroup; //手牌刚摸的牌和其他牌 的间距;

// }


// --- 占位符：配置类定义 ---
// 如果您已经定义了这些类，请删除或注释掉以下部分
[Serializable]
public class MJ_TableLayoutConfig : ScriptableObject
{
    public List<MJ_CommonCardLayoutConfig> WallCards = new List<MJ_CommonCardLayoutConfig>();
    public List<MJ_CommonCardLayoutConfig> RiverCards = new List<MJ_CommonCardLayoutConfig>();
    public List<MJ_CommonCardLayoutConfig> FlowerCards = new List<MJ_CommonCardLayoutConfig>();
    public MJ_ActionCardLayoutConfig ActionCardsConfig = new MJ_ActionCardLayoutConfig();
    public MJ_HandCardLayoutConfig HandCardsConfig = new MJ_HandCardLayoutConfig();

}


[Serializable]
public struct MJ_CommonCardLayoutConfig
{
    public List<Vector3> Pos;
}

[System.Serializable]
public class MJ_ActionCardLayoutConfig
{
    //public string Name = "";// 用于标识是哪个方向的配置
    public List<Vector3> StartPositions_ShuPai = new List<Vector3>();
    public List<Vector3> StartPositions_HengPai = new List<Vector3>();

    public Vector2 SizeOfCard = Vector2.zero; // x: width, y: height
    public float GapBetweenCards;
    public float GapBetweenGroup ;


    //     public List<Vector3> StartPositions_ShuPai; //竖着摆放的开始位置
    //     public List<Vector3> StartPositions_HengPai; //横着摆放的开始位置

    //     public List<Vector3> StartPositions_ShuPai; //竖着摆放的开始位置
    //     public List<Vector3> StartPositions_HengPai; //横着摆放的开始位置
}

[System.Serializable]
public class MJ_HandCardLayoutConfig
{
    //public string Name { get; set; } // 用于标识是哪个方向的配置
    public float HorizontalDistance = 0f;
    public float GapBetweenGroup = 0f;
    public List<Vector3> StartPositions = new List<Vector3>();


    //     public List<Vector3> StartPositions; //保存4个风位的起点坐标, 从BOTTOM按逆时针保存

    //     public float HorizontalDistance; //相邻牌的左右间距; 是模型中心点的距离

    //     public float GapBetweenGroup; //手牌刚摸的牌和其他牌 的间距;
}
// --- 占位符结束 ---


public static class Util
{
    public static MJ_CommonCardLayoutConfig ConvertToCommonCardConfig(this List<Vector3> startPosition)
    {
        var config = new MJ_CommonCardLayoutConfig
        {
            Pos = startPosition
        };
        return config;
    }
}